{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LAB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "from sklearn.datasets import load_boston\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "import statsmodels.formula.api as smf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "boston = load_boston()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.DataFrame(boston.data,columns = boston['feature_names'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PTRATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>MEDV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.00632</td>\n",
       "      <td>18.0</td>\n",
       "      <td>2.31</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.538</td>\n",
       "      <td>6.575</td>\n",
       "      <td>65.2</td>\n",
       "      <td>4.0900</td>\n",
       "      <td>1.0</td>\n",
       "      <td>296.0</td>\n",
       "      <td>15.3</td>\n",
       "      <td>396.90</td>\n",
       "      <td>4.98</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.02731</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>6.421</td>\n",
       "      <td>78.9</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.14</td>\n",
       "      <td>21.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.02729</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>7.185</td>\n",
       "      <td>61.1</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>392.83</td>\n",
       "      <td>4.03</td>\n",
       "      <td>34.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.03237</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>6.998</td>\n",
       "      <td>45.8</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>394.63</td>\n",
       "      <td>2.94</td>\n",
       "      <td>33.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.06905</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>7.147</td>\n",
       "      <td>54.2</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.33</td>\n",
       "      <td>36.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  \\\n",
       "0  0.00632  18.0   2.31   0.0  0.538  6.575  65.2  4.0900  1.0  296.0   \n",
       "1  0.02731   0.0   7.07   0.0  0.469  6.421  78.9  4.9671  2.0  242.0   \n",
       "2  0.02729   0.0   7.07   0.0  0.469  7.185  61.1  4.9671  2.0  242.0   \n",
       "3  0.03237   0.0   2.18   0.0  0.458  6.998  45.8  6.0622  3.0  222.0   \n",
       "4  0.06905   0.0   2.18   0.0  0.458  7.147  54.2  6.0622  3.0  222.0   \n",
       "\n",
       "   PTRATIO       B  LSTAT  MEDV  \n",
       "0     15.3  396.90   4.98  24.0  \n",
       "1     17.8  396.90   9.14  21.6  \n",
       "2     17.8  392.83   4.03  34.7  \n",
       "3     18.7  394.63   2.94  33.4  \n",
       "4     18.7  396.90   5.33  36.2  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['MEDV'] = boston['target']\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x194cff68e10>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.regplot(data['LSTAT'],data['MEDV'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   MEDV   R-squared:                       0.544\n",
      "Model:                            OLS   Adj. R-squared:                  0.543\n",
      "Method:                 Least Squares   F-statistic:                     601.6\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):           5.08e-88\n",
      "Time:                        09:26:42   Log-Likelihood:                -1641.5\n",
      "No. Observations:                 506   AIC:                             3287.\n",
      "Df Residuals:                     504   BIC:                             3295.\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept     34.5538      0.563     61.415      0.000      33.448      35.659\n",
      "LSTAT         -0.9500      0.039    -24.528      0.000      -1.026      -0.874\n",
      "==============================================================================\n",
      "Omnibus:                      137.043   Durbin-Watson:                   0.892\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              291.373\n",
      "Skew:                           1.453   Prob(JB):                     5.36e-64\n",
      "Kurtosis:                       5.319   Cond. No.                         29.7\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "# est = smf.ols(y ~ x,data)\n",
    "est = smf.ols('MEDV ~ LSTAT',data = data).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.lines.Line2D at 0x194d1a92940>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#dist of residuals\n",
    "plt.ylim(-25,25)\n",
    "sns.scatterplot(est.fittedvalues,est.resid)\n",
    "plt.axhline(y = 0,linewidth = 0.5,linestyle = 'dashed',color = 'black')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multiple Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   MEDV   R-squared:                       0.741\n",
      "Model:                            OLS   Adj. R-squared:                  0.734\n",
      "Method:                 Least Squares   F-statistic:                     108.1\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):          6.72e-135\n",
      "Time:                        09:32:15   Log-Likelihood:                -1498.8\n",
      "No. Observations:                 506   AIC:                             3026.\n",
      "Df Residuals:                     492   BIC:                             3085.\n",
      "Df Model:                          13                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept     36.4595      5.103      7.144      0.000      26.432      46.487\n",
      "CRIM          -0.1080      0.033     -3.287      0.001      -0.173      -0.043\n",
      "ZN             0.0464      0.014      3.382      0.001       0.019       0.073\n",
      "INDUS          0.0206      0.061      0.334      0.738      -0.100       0.141\n",
      "CHAS           2.6867      0.862      3.118      0.002       0.994       4.380\n",
      "NOX          -17.7666      3.820     -4.651      0.000     -25.272     -10.262\n",
      "RM             3.8099      0.418      9.116      0.000       2.989       4.631\n",
      "AGE            0.0007      0.013      0.052      0.958      -0.025       0.027\n",
      "DIS           -1.4756      0.199     -7.398      0.000      -1.867      -1.084\n",
      "RAD            0.3060      0.066      4.613      0.000       0.176       0.436\n",
      "TAX           -0.0123      0.004     -3.280      0.001      -0.020      -0.005\n",
      "PTRATIO       -0.9527      0.131     -7.283      0.000      -1.210      -0.696\n",
      "B              0.0093      0.003      3.467      0.001       0.004       0.015\n",
      "LSTAT         -0.5248      0.051    -10.347      0.000      -0.624      -0.425\n",
      "==============================================================================\n",
      "Omnibus:                      178.041   Durbin-Watson:                   1.078\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              783.126\n",
      "Skew:                           1.521   Prob(JB):                    8.84e-171\n",
      "Kurtosis:                       8.281   Cond. No.                     1.51e+04\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "[2] The condition number is large, 1.51e+04. This might indicate that there are\n",
      "strong multicollinearity or other numerical problems.\n"
     ]
    }
   ],
   "source": [
    "string_cols = ' + '.join(data.columns[:-1])\n",
    "est = smf.ols('MEDV ~ {}'.format(string_cols),data = data).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   MEDV   R-squared:                       0.741\n",
      "Model:                            OLS   Adj. R-squared:                  0.735\n",
      "Method:                 Least Squares   F-statistic:                     128.2\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):          5.54e-137\n",
      "Time:                        09:34:03   Log-Likelihood:                -1498.9\n",
      "No. Observations:                 506   AIC:                             3022.\n",
      "Df Residuals:                     494   BIC:                             3072.\n",
      "Df Model:                          11                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept     36.3411      5.067      7.171      0.000      26.385      46.298\n",
      "B              0.0093      0.003      3.475      0.001       0.004       0.015\n",
      "CHAS           2.7187      0.854      3.183      0.002       1.040       4.397\n",
      "CRIM          -0.1084      0.033     -3.307      0.001      -0.173      -0.044\n",
      "DIS           -1.4927      0.186     -8.037      0.000      -1.858      -1.128\n",
      "LSTAT         -0.5226      0.047    -11.019      0.000      -0.616      -0.429\n",
      "NOX          -17.3760      3.535     -4.915      0.000     -24.322     -10.430\n",
      "PTRATIO       -0.9465      0.129     -7.334      0.000      -1.200      -0.693\n",
      "RAD            0.2996      0.063      4.726      0.000       0.175       0.424\n",
      "RM             3.8016      0.406      9.356      0.000       3.003       4.600\n",
      "TAX           -0.0118      0.003     -3.493      0.001      -0.018      -0.005\n",
      "ZN             0.0458      0.014      3.390      0.001       0.019       0.072\n",
      "==============================================================================\n",
      "Omnibus:                      178.430   Durbin-Watson:                   1.078\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              787.785\n",
      "Skew:                           1.523   Prob(JB):                    8.60e-172\n",
      "Kurtosis:                       8.300   Cond. No.                     1.47e+04\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "[2] The condition number is large, 1.47e+04. This might indicate that there are\n",
      "strong multicollinearity or other numerical problems.\n"
     ]
    }
   ],
   "source": [
    "#removing AGE and INDUS\n",
    "string_cols = ' + '.join(data.columns[:-1].difference(['AGE','INDUS']))\n",
    "est = smf.ols('MEDV ~ {}'.format(string_cols),data = data).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Interaction term"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   MEDV   R-squared:                       0.556\n",
      "Model:                            OLS   Adj. R-squared:                  0.553\n",
      "Method:                 Least Squares   F-statistic:                     209.3\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):           4.86e-88\n",
      "Time:                        09:36:27   Log-Likelihood:                -1635.0\n",
      "No. Observations:                 506   AIC:                             3278.\n",
      "Df Residuals:                     502   BIC:                             3295.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept     36.0885      1.470     24.553      0.000      33.201      38.976\n",
      "LSTAT         -1.3921      0.167     -8.313      0.000      -1.721      -1.063\n",
      "AGE           -0.0007      0.020     -0.036      0.971      -0.040       0.038\n",
      "LSTAT:AGE      0.0042      0.002      2.244      0.025       0.001       0.008\n",
      "==============================================================================\n",
      "Omnibus:                      135.601   Durbin-Watson:                   0.965\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              296.955\n",
      "Skew:                           1.417   Prob(JB):                     3.29e-65\n",
      "Kurtosis:                       5.461   Cond. No.                     6.88e+03\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "[2] The condition number is large, 6.88e+03. This might indicate that there are\n",
      "strong multicollinearity or other numerical problems.\n"
     ]
    }
   ],
   "source": [
    "est = smf.ols('MEDV ~ LSTAT*AGE',data = data).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   MEDV   R-squared:                       0.641\n",
      "Model:                            OLS   Adj. R-squared:                  0.639\n",
      "Method:                 Least Squares   F-statistic:                     448.5\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):          1.56e-112\n",
      "Time:                        09:40:15   Log-Likelihood:                -1581.3\n",
      "No. Observations:                 506   AIC:                             3169.\n",
      "Df Residuals:                     503   BIC:                             3181.\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept     42.8620      0.872     49.149      0.000      41.149      44.575\n",
      "LSTAT         -2.3328      0.124    -18.843      0.000      -2.576      -2.090\n",
      "LSTAT_2        0.0435      0.004     11.628      0.000       0.036       0.051\n",
      "==============================================================================\n",
      "Omnibus:                      107.006   Durbin-Watson:                   0.921\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              228.388\n",
      "Skew:                           1.128   Prob(JB):                     2.55e-50\n",
      "Kurtosis:                       5.397   Cond. No.                     1.13e+03\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "[2] The condition number is large, 1.13e+03. This might indicate that there are\n",
      "strong multicollinearity or other numerical problems.\n"
     ]
    }
   ],
   "source": [
    "#adding power term\n",
    "tmp = data.copy()\n",
    "tmp['LSTAT_2'] = tmp['LSTAT']**2\n",
    "est = smf.ols('MEDV ~ LSTAT + LSTAT_2',data = tmp).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   MEDV   R-squared:                       0.127\n",
      "Model:                            OLS   Adj. R-squared:                  0.125\n",
      "Method:                 Least Squares   F-statistic:                     73.35\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):           1.32e-16\n",
      "Time:                        09:41:33   Log-Likelihood:                -1805.9\n",
      "No. Observations:                 506   AIC:                             3616.\n",
      "Df Residuals:                     504   BIC:                             3624.\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "======================================================================================\n",
      "                         coef    std err          t      P>|t|      [0.025      0.975]\n",
      "--------------------------------------------------------------------------------------\n",
      "Intercept             23.6291      0.403     58.598      0.000      22.837      24.421\n",
      "np.power(LSTAT, 5) -4.237e-07   4.95e-08     -8.565      0.000   -5.21e-07   -3.26e-07\n",
      "==============================================================================\n",
      "Omnibus:                      118.748   Durbin-Watson:                   0.659\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              220.154\n",
      "Skew:                           1.341   Prob(JB):                     1.56e-48\n",
      "Kurtosis:                       4.803   Cond. No.                     8.60e+06\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "[2] The condition number is large, 8.6e+06. This might indicate that there are\n",
      "strong multicollinearity or other numerical problems.\n"
     ]
    }
   ],
   "source": [
    "#adding power term\n",
    "# tmp = data.copy()\n",
    "# tmp['LSTAT_2'] = tmp['LSTAT']**2\n",
    "est = smf.ols('MEDV ~ np.power(LSTAT,5)',data = data).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Qualitative predictors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(400, 11)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sales</th>\n",
       "      <th>CompPrice</th>\n",
       "      <th>Income</th>\n",
       "      <th>Advertising</th>\n",
       "      <th>Population</th>\n",
       "      <th>Price</th>\n",
       "      <th>ShelveLoc</th>\n",
       "      <th>Age</th>\n",
       "      <th>Education</th>\n",
       "      <th>Urban</th>\n",
       "      <th>US</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>9.50</td>\n",
       "      <td>138</td>\n",
       "      <td>73</td>\n",
       "      <td>11</td>\n",
       "      <td>276</td>\n",
       "      <td>120</td>\n",
       "      <td>Bad</td>\n",
       "      <td>42</td>\n",
       "      <td>17</td>\n",
       "      <td>Yes</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>11.22</td>\n",
       "      <td>111</td>\n",
       "      <td>48</td>\n",
       "      <td>16</td>\n",
       "      <td>260</td>\n",
       "      <td>83</td>\n",
       "      <td>Good</td>\n",
       "      <td>65</td>\n",
       "      <td>10</td>\n",
       "      <td>Yes</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10.06</td>\n",
       "      <td>113</td>\n",
       "      <td>35</td>\n",
       "      <td>10</td>\n",
       "      <td>269</td>\n",
       "      <td>80</td>\n",
       "      <td>Medium</td>\n",
       "      <td>59</td>\n",
       "      <td>12</td>\n",
       "      <td>Yes</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>7.40</td>\n",
       "      <td>117</td>\n",
       "      <td>100</td>\n",
       "      <td>4</td>\n",
       "      <td>466</td>\n",
       "      <td>97</td>\n",
       "      <td>Medium</td>\n",
       "      <td>55</td>\n",
       "      <td>14</td>\n",
       "      <td>Yes</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4.15</td>\n",
       "      <td>141</td>\n",
       "      <td>64</td>\n",
       "      <td>3</td>\n",
       "      <td>340</td>\n",
       "      <td>128</td>\n",
       "      <td>Bad</td>\n",
       "      <td>38</td>\n",
       "      <td>13</td>\n",
       "      <td>Yes</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Sales  CompPrice  Income  Advertising  Population  Price ShelveLoc  Age  \\\n",
       "0   9.50        138      73           11         276    120       Bad   42   \n",
       "1  11.22        111      48           16         260     83      Good   65   \n",
       "2  10.06        113      35           10         269     80    Medium   59   \n",
       "3   7.40        117     100            4         466     97    Medium   55   \n",
       "4   4.15        141      64            3         340    128       Bad   38   \n",
       "\n",
       "   Education Urban   US  \n",
       "0         17   Yes  Yes  \n",
       "1         10   Yes  Yes  \n",
       "2         12   Yes  Yes  \n",
       "3         14   Yes  Yes  \n",
       "4         13   Yes   No  "
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "carseats = pd.read_csv(r'E:\\programming\\dataset\\Into_to_statstical_learning\\carseats.csv')\n",
    "print(carseats.shape)\n",
    "carseats.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                  Sales   R-squared:                       0.317\n",
      "Model:                            OLS   Adj. R-squared:                  0.314\n",
      "Method:                 Least Squares   F-statistic:                     92.23\n",
      "Date:                Fri, 19 Jun 2020   Prob (F-statistic):           1.27e-33\n",
      "Time:                        09:59:42   Log-Likelihood:                -906.03\n",
      "No. Observations:                 400   AIC:                             1818.\n",
      "Df Residuals:                     397   BIC:                             1830.\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "=======================================================================================\n",
      "                          coef    std err          t      P>|t|      [0.025      0.975]\n",
      "---------------------------------------------------------------------------------------\n",
      "Intercept               5.5229      0.239     23.131      0.000       5.054       5.992\n",
      "ShelveLoc[T.Good]       4.6911      0.348     13.464      0.000       4.006       5.376\n",
      "ShelveLoc[T.Medium]     1.7837      0.286      6.229      0.000       1.221       2.347\n",
      "==============================================================================\n",
      "Omnibus:                        0.077   Durbin-Watson:                   1.946\n",
      "Prob(Omnibus):                  0.962   Jarque-Bera (JB):                0.092\n",
      "Skew:                           0.033   Prob(JB):                        0.955\n",
      "Kurtosis:                       2.966   Cond. No.                         4.57\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "est = smf.ols('Sales ~ ShelveLoc',data = carseats).fit()\n",
    "print(est.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#  we can see that "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
